package fr.n7.sma.util.property;

public class PropertyChangedEvent<Key> {

	private Class<? extends Object> propertyClass;
	private Object value;
	private PropertyManager<Key> sourcePropertyManager;
	private Key key;
	
	public PropertyChangedEvent(
			PropertyManager<Key> sourcePropertyManager,
			Class<? extends Object> propertyClass,
			Object value,
			Key key) {
		super();
		this.propertyClass = propertyClass;
		this.value = value;
		this.sourcePropertyManager = sourcePropertyManager;
		this.key = key;
	}
	
	public Class<? extends Object> getPropertyClass() {
		return propertyClass;
	}
	
	public Object getValue() {
		return value;
	}
	
	public PropertyManager<Key> getSourcePropertyManager() {
		return sourcePropertyManager;
	}

	public Key getKey() {
		return key;
	}
	
}
